package java6681.nio2;

import java.io.File;
import java.io.IOException;
import java.nio.file.*;
import java.util.Scanner;

/**
 * @BelongPackage: java6647.nio2
 * @Author: Administrator
 * @CreateTime: 2021-04-19 10:54
 * @Description
 **/
public class NIO2NewFile6681 {
    public static void main(String[] args) throws IOException {
        System.out.print("请输入要创建的文件 (可带上路径): ");
        String input = new Scanner(System.in).nextLine().trim();
        // 非空验证
        if("".equals(input)){ System.out.println("输入不能为空!");return; }
        // 针对输入不正确的目录格式来捕获异常, 例如::
        try {
            Path path = Paths.get(input);
            // 判断盘符是否存在
            if(!new File(input.substring(0, 2)).exists() && input.substring(0, 2).indexOf(':') != -1){
                System.out.println("创建失败，指定的盘符不存在!");return;
            }
            // 如果是多级目录, 则进行创建目录
            if(path.getNameCount() > 1){
                Files.createDirectories(Paths.get(input.substring(0, input.lastIndexOf("\\"))));
            }
            // 最后, 创建文件
            if(!Files.exists(path)){
                Files.createFile(path);
                System.out.println("成功创建文件: " + path);
            }else{
                System.out.println("创建失败, 文件已存在...");
            }
        }catch (InvalidPathException e){
            System.out.println("输入的目录值不合法!");
        }
    }
}
